home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Format CD 35
/
Amiga Format AFCD35 (Issue 119, Jan 1999).iso
/
-in_the_mag-
/
reader_requests
/
fredobbutils
/
bbsrc
/
beyondforce.s
< prev
next >
Wrap
Text File
|
1998-11-06
|
5KB
|
243 lines
* BEYOND FORCE Bootblock
* Resourced by Frédo
* doesn't seem to work under 2.0+
* (not system friendly)
LB_0000
dc.b 'DOS',0
LB_0004 dc.l 0
dc.l $370
Start:
move.l 4.w,a6
movem.l d0-a6,-(sp)
LEA $00DFF002,A5
LEA $0004(A5),A6
LEA LB_01F2(PC),A0
LEA $00028000,A2 ;aargh!! :-)
MOVE #$0C00,D4
MOVEQ #$7F,D7
LB_002A MOVE #$4400,D5
MOVE (A0),D0
MULS D4,D0
MOVE.L D0,D2
DIVS D5,D0
MOVE $0080(A0),D1
MULS D4,D1
MOVE.L D1,D3
DIVS D5,D1
MOVE (A6),D6
ANDI #$003F,D6
MULU #$0070,D6
SUB D6,D5
DIVS D5,D2
DIVS D5,D3
SUB D2,D0
SUB D3,D1
MOVE #$4400,D5
MOVEQ #$7F,D6
LB_005A MOVE (A0),D2
MULS D4,D2
DIVS D5,D2
MOVE $0080(A0),D3
MULS D4,D3
DIVS D5,D3
ADD D0,D2
ADD D1,D3
CMPI #$00A0,D2
BGE.B LB_00BE
CMPI #$FF60,D2
BLE.B LB_00BE
CMPI #$0080,D3
BGE.B LB_00BE
TST D3
BMI.B LB_00BE
NEG D3
ADDI #$00A0,D2
ADDI #$007F,D3
MULU #$0050,D3
ADD.L LB_03C6(PC),D3
MOVE.L D3,A1
MOVE D2,D3
LSR #3,D3
ADDA D3,A1
NOT.B D2
ANDI.B #$07,D2
MOVEQ #$00,D3
BSET D2,D3
MOVE.L D3,D2
SWAP D3
CMPI #$0040,D6
BLE.B LB_00B4
OR.L D3,D2
BRA.B LB_00C2
LB_00B4 CMPI #$0020,D6
BLE.B LB_00C2
MOVE.L D3,D2
BRA.B LB_00C2
LB_00BE LEA LB_0004(PC),A1
LB_00C2 MOVE.L D2,(A2)+
MOVE.L A1,(A2)+
SUBI #$0070,D5
DBF D6,LB_005A
ADDQ.L #2,A0
DBF D7,LB_002A
MOVE.L LB_03D2(PC),A0
MOVE #$0293,D7
LB_00DC MOVE (A6),D1
EOR D1,D0
ROR #8,D0
LSL #3,D0
MOVE D0,(A0)+
ADD.B (A6),D0
DBF D7,LB_00DC
;start DMA
MOVE #$3FFF,$0098(A5) ;intena
MOVE #$3FFF,$0094(A5) ;dmacon
MOVE #$83C0,$0094(A5) ;dmacon
LEA LB_0372(PC),A0 ;copperlist
MOVE.L A0,$007E(A5) ;cop1lch (initialize copperlist)
LB_0106
MOVE.L $0002(A5),D0
ANDI.L #$0001FF00,D0
BNE.B LB_0106
LEA LB_03CA(PC),A0
LEA LB_03CE(PC),A1
MOVE.L (A1),D0
MOVE.L (A0),(A1)
MOVE.L D0,(A0)
LB_0120 BTST #$06,(A5)
BNE.B LB_0120
MOVE.L #$01000000,$003E(A5) ;bltcon0
; MOVE #$0000,$0064(A5) ;bltdmod
clr $64(a5)
MOVE.L D0,$0052(A5) ;bltdpth
MOVE #$1400,$0056(A5) ;bltsize (set blit size & start blitter)
MOVE.L LB_03D2(PC),A0
LEA $00028000,A1
LEA $00038000,A3
MOVE.L LB_03CA(PC),D2
SUB.L LB_03C6(PC),D2
MOVEQ #$08,D4
MOVEQ #$00,D0
MOVE #$0293,D7
LB_015E BTST #$06,(A5)
BNE.B LB_015E
LB_0164 MOVE (A0),D0
ADD D4,(A0)+
MOVEM.L $00(A1,D0.L),D1/A2
ADDA.L D2,A2
OR.B D1,(A2)
SWAP D1
OR.B D1,$0028(A2)
MOVEM.L $00(A3,D0.L),D1/A2
ADDA.L D2,A2
OR.B D1,(A2)
SWAP D1
OR.B D1,$0028(A2)
DBF D7,LB_0164
LEA LB_0392(PC),A0
MOVE.L LB_03CA(PC),D0
MOVE D0,$0006(A0)
SWAP D0
MOVE D0,$0002(A0)
SWAP D0
ADDI.L #$00000028,D0
MOVE D0,$000E(A0)
SWAP D0
MOVE D0,$000A(A0)
MOVE.B #$22,$0012(A0)
BTST #$06,$00BFE001 ;test leftmouse
BNE LB_0106
;restore system coplist and boot AmigaDOS
MOVE.L $0004.W,A6
MOVE.L $009C(A6),A0 ;Execbase->gfxbase
MOVE.L $0026(A0),$007E(A5) ;restore coplist
MOVE #$83F0,$0094(A5) ;restore dma
MOVE #$E02C,$0098(A5) ;restore intena
MOVEM.L (A7)+,D0-A6
LEA LB_03D6(PC),A1
JSR -$0060(A6)
MOVE.L D0,A0
MOVE.L $0016(A0),A0
MOVEQ #$00,D0
RTS
;some data
LB_01F2
DC.B $FF,$42,$FF,$42,$FF,$42,$FF,$43
DC.B $FF,$43,$FF,$44,$FF,$44,$FF,$45
DC.B $FF,$46,$FF,$47,$FF,$48,$FF,$4A
DC.B $FF,$4B,$FF,$4C,$FF,$4E,$FF,$50
DC.B $FF,$51,$FF,$53,$FF,$55,$FF,$57
DC.B $FF,$5A,$FF,$5C,$FF,$5E,$FF,$61
DC.B $FF,$63,$FF,$66,$FF,$69,$FF,$6C
DC.B $FF,$6F,$FF,$72,$FF,$75,$FF,$78
DC.B $FF,$7B,$FF,$7F,$FF,$82,$FF,$86
DC.B $FF,$89,$FF,$8D,$FF,$91,$FF,$95
DC.B $FF,$98,$FF,$9C,$FF,$A0,$FF,$A4
DC.B $FF,$A8,$FF,$AD,$FF,$B1,$FF,$B5
DC.B $FF,$B9,$FF,$BE,$FF,$C2,$FF,$C7
DC.B $FF,$CB,$FF,$D0,$FF,$D4,$FF,$D9
DC.B $FF,$DD,$FF,$E2,$FF,$E6,$FF,$EB
DC.B $FF,$F0,$FF,$F4,$FF,$F9,$FF,$FE
DC.B $00,$02,$00,$07,$00,$0C,$00,$10
DC.B $00,$15,$00,$1A,$00,$1E,$00,$23
DC.B $00,$27,$00,$2C,$00,$30,$00,$35
DC.B $00,$39,$00,$3E,$00,$42,$00,$47
DC.B $00,$4B,$00,$4F,$00,$53,$00,$58
DC.B $00,$5C,$00,$60,$00,$64,$00,$68
DC.B $00,$6B,$00,$6F,$00,$73,$00,$77
DC.B $00,$7A,$00,$7E,$00,$81,$00,$85
DC.B $00,$88,$00,$8B,$00,$8E,$00,$91
DC.B $00,$94,$00,$97,$00,$9A,$00,$9D
DC.B $00,$9F,$00,$A2,$00,$A4,$00,$A6
DC.B $00,$A9,$00,$AB,$00,$AD,$00,$AF
DC.B $00,$B0,$00,$B2,$00,$B4,$00,$B5
DC.B $00,$B6,$00,$B8,$00,$B9,$00,$BA
DC.B $00,$BB,$00,$BC,$00,$BC,$00,$BD
DC.B $00,$BD,$00,$BE,$00,$BE,$00,$BE
DC.B $00,$BE,$00,$BE,$00,$BE,$00,$BD
DC.B $00,$BD,$00,$BC,$00,$BC,$00,$BB
DC.B $00,$BA,$00,$B9,$00,$B8,$00,$B6
DC.B $00,$B5,$00,$B4,$00,$B2,$00,$B0
DC.B $00,$AF,$00,$AD,$00,$AB,$00,$A9
DC.B $00,$A6,$00,$A4,$00,$A2,$00,$9F
DC.B $00,$9D,$00,$9A,$00,$97,$00,$94
DC.B $00,$91,$00,$8E,$00,$8B,$00,$88
DC.B $00,$85,$00,$81,$00,$7E,$00,$7A
DC.B $00,$77,$00,$73,$00,$6F,$00,$6B
DC.B $00,$68,$00,$64,$00,$60,$00,$5C
DC.B $00,$58,$00,$53,$00,$4F,$00,$4B
DC.B $00,$47,$00,$42,$00,$3E,$00,$39
DC.B $00,$35,$00,$30,$00,$2C,$00,$27
DC.B $00,$23,$00,$1E,$00,$1A,$00,$15
DC.B $00,$10,$00,$0C,$00,$07,$00,$02
;copperlist data
LB_0372
DC.B $01,$80,$00,$00,$01,$82,$0F,$FF
DC.B $01,$84,$0A,$AA,$01,$86,$08,$88
DC.B $00,$8E,$29,$81,$00,$90,$28,$C1
DC.B $00,$92,$00,$38,$00,$94,$00,$D0
LB_0392
DC.B $00,$E0,$00,$00,$00,$E2,$00,$00
DC.B $00,$E4,$00,$00,$00,$E6,$00,$00
DC.B $01,$00,$02,$00,$01,$02,$00,$00
DC.B $01,$04,$00,$00,$01,$08,$00,$28
DC.B $01,$0A,$00,$28,$A8,$09,$FF,$FE
DC.B $01,$08,$FF,$88,$01,$0A,$FF,$88
DC.B $FF,$FF,$FF,$FE ;end of coplist
LB_03C6
DC.B $00,$02,$00,$00
LB_03CA
DC.B $00,$02,$00,$00
LB_03CE
DC.B $00,$02,$28,$00
LB_03D2
DC.B $00,$02,$50,$00
LB_03D6
dc.b 'dos.library',0
DC.B 'Email:vanhanen@vipunen.hut'